package com.eastfair.pay.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.eastfair.boot.request.PageParams;
import com.eastfair.boot.service.SuperService;
import com.eastfair.pay.dto.CollectionAccountDTO;
import com.eastfair.pay.dto.CollectionAccountPageQuery;
import com.eastfair.pay.dto.CollectionAccountSaveDTO;
import com.eastfair.pay.entity.CollectionAccount;
import com.eastfair.pay.vo.CollectionAccountVO;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 收款账户
 * </p>
 *
 * @author clm
 * @date 2023-02-22
 */
public interface CollectionAccountService extends SuperService<CollectionAccount> {
    /**
     * do转vo
     *
     * @param model
     */
    CollectionAccountVO doToVo(CollectionAccount model);

    /**
     * do转vo
     *
     * @param modelList
     */
    List<CollectionAccountVO> doToVos(List<CollectionAccount> modelList);


    /**
     * 通用查询
     *
     * @param modelDTO DTO
     * @param ids      主键id集合
     * @return list
     */
    List<CollectionAccount> list(CollectionAccountDTO modelDTO, List<Long> ids);

    /**
     * 通用查询
     *
     * @param modelDTO DTO
     * @param ids      主键id集合
     * @return list
     */
    List<CollectionAccount> listOfCache(CollectionAccountDTO modelDTO, List<Long> ids);

    /**
     * @return com.eastfair.core.base.R<com.baomidou.mybatisplus.extension.plugins.pagination.Page < com.eastfair.pay.vo.CollectionAccountVO>>
     * @Author clm
     * @Description //分页查询收款账户
     * @Date 10:15 2023/2/22
     * @Param [params]
     **/
    Page<CollectionAccountVO> queryList(PageParams<CollectionAccountPageQuery> params);

    public CollectionAccount getAccountByName(String name);

    void delete(CollectionAccount collectionAccount);

    /**
     * @Author fwl
     * @Description //通过系统标识获取收款账户
     * @Date 15:58 2023/3/24
     * @Param [systemScene]
     **/
    String getCollectionAccountBySystemScene(String systemScene);

    CollectionAccount saveCollectionAccount(CollectionAccountSaveDTO collectionAccountSaveDTO);
}
